Matrix multiplication (matrix product) produces a matrix C from two matrices A and B. If A is an n×m matrix and B is an m×p matrix, their matrix product AB is an n×p matrix, in which the m entries across a row of A are multiplied with the m entries down a column of B and summed to produce an entry of AB i.e. each i, j entry in the product matrix C is given by multiplying the entries Aik (across row i of A) by the entries Bkj (down column j of B), for k=1, 2, . . . , m, and summing the results over k according to equation 1:ABij=Σk=0nAik×Bkj  Equation 1
Computing matrix products is a central operation in many algorithms and is potentially time consuming. Various algorithms have been developed for computing the multiplication especially for large matrices which provide a complexity of O(mnp).
Throughout this application, matrices are represented by capital letters in bold, e.g. A, vectors by lowercase letters in bold, e.g. a, and entries of vectors and matrices represented by italic fonts e.g. A and a. Thus, the i, j entry of matrix A is indicated by Aij and entry i of vector a is indicated by ai.
In addition, throughout this application, the operands of the multiplications may be referred to as “multiplier” and “multiplicand” and the value of each operand may be originated at either a matrix or a vector.